SV thread Tuesday, 09-Feb-99 10:21:56
Hi everybody. i found this part of code: :004052A2 55 push ebp :004052A3 A110794000 mov eax, dword ptr [00407910] :004052A8 8BEC mov ebp, esp :004052AA 83EC0C sub esp, 0000000C :004052AD 56 push esi :004052AE 57 push edi < file name of zip file :004052AF 50 push eax < password entered :004052B0 E85AFFFFFF call 0040520F < a unsigned int is calculated with each char of password. :004052B5 83C404 add esp, 00000004 :004052B8 8D4DF4 lea ecx, dword ptr [ebp-0C] :004052BB 33FF xor edi, edi :004052BD 6A0C push 0000000C :004052BF FF7508 push [ebp+08] < 0C bytes in, used to calculate somes things!! is it a key ?? :004052C2 51 push ecx :004052C3 E838BDFFFF call 00401000 < this 0C bytes are copied in another location. :004052C8 83C40C add esp, 0000000C * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:004052E6(C) | :004052CB 8D743DF4 lea esi, dword ptr [ebp+edi-0C] :004052CF E8BEFEFFFF call 00405192 < another part of calcul whith the result of the unsigned int calculated and each bytes of the famous 0C bytes. :004052D4 47 inc edi :004052D5 3006 xor byte ptr [esi], al :004052D7 0FB606 movzx eax, byte ptr [esi] :004052DA 50 push eax :004052DB E8CBFEFFFF call 004051AB :004052E0 83C404 add esp, 00000004 :004052E3 83FF0C cmp edi, 0000000C :004052E6 7CE3 jl 004052CB < do this for each byte. :004052E8 833D0C79400000 cmp dword ptr [0040790C], 00000000 :004052EF 660FB64DFF movzx cx, byte ptr [ebp-01] :004052F4 7416 je 0040530C :004052F6 66A156854000 mov ax, word ptr [00408556] :004052FC 66C1E808 shr ax, 08 :00405300 663BC1 cmp ax, cx :00405303 7419 je 0040531E :00405305 B8FFFFFFFF mov eax, FFFFFFFF :0040530A EB14 jmp 00405320 * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:004052F4(C) | :0040530C A15A854000 mov eax, dword ptr [0040855A] :00405311 C1E818 shr eax, 18 :00405314 663BC1 cmp ax, cx :00405317 B8FFFFFFFF mov eax, FFFFFFFF :0040531C 7502 jne 00405320 * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:00405303(C) | :0040531E 33C0 xor eax, eax < right password ??? * Referenced by a (U)nconditional or (C)onditional Jump at Addresses: |:0040530A(U), :0040531C(C) | :00405320 5F pop edi :00405321 5E pop esi :00405322 8BE5 mov esp, ebp :00405324 5D pop ebp :00405325 C3 ret i think you can force to do the xor eax,eax but the right password is needed to decompress the file.Then you must know the password to complete the task. example: try the number 3 as password with the zip. It execute the xor but after you have a message bad crc !!! Salut. SV SV |
SV thread (SV) (09-Feb-99 10:21:56) |